'''
img是图片矩阵
ratio是想要删除的连通区域占图片大小的比例阈值
'''
import cv2
def delete_smallarea(img, ratio):
    [height, weidth] = img.shape
    contours, hier = cv2.findContours(img, cv2.RETR_EXTERNAL,
                                        cv2.CHAIN_APPROX_NONE)  # contours返回的是轮廓像素点列表，一张图像有几个目标区域就有几个列表值
    for i in range(len(contours)):
        area = cv2.contourArea(contours[i])  # 计算轮廓面积，但是可能和像素点区域不太一样 收藏
        if area < height * weidth * ratio:
            cv2.drawContours(img, [contours[i]], 0, 0, -1)  ##去除小面积连通域
    return img